package com.base.common.edu.mapper;

import com.base.common.edu.entity.SysRole;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * @Author Maple.Chen
 * @Description 数据交互层-role
 * @Date 20:53 2021/2/17
 **/
@Mapper
@Repository
public interface RoleMapper {

    // 根据职工id查询所关联的角色
    List<SysRole> queryRolesByStaffId(String staff_id);

    // 根据角色组id查询所关联的角色
    List<SysRole> queryRolesBySysGroupId(String group_id);

    // 查询所有的角色
    List<SysRole> queryAllRoles();

    // 新增一个角色
    int saveRole(@Param("role") SysRole sysRole);

    // 修改角色信息：角色名
    int updateRole(@Param("role") SysRole sysRole);

    // 删除一个角色
    int deleteRole(@Param("role") SysRole sysRole);

    // 根据角色id查询角色
    SysRole queryRoleById(String role__id);

    // 将一个角色关联到职工
    int saveTieToRoleStaff(@Param("role__id") String role__id, @Param("staff__id") String staff__id);

    // 将一个角色到职工的关联移除
    int removeTieToRoleStaff(@Param("role__id") String role__id, @Param("staff__id") String staff__id);

    // 将一个角色关联到角色组
    int saveTieToRoleGroup(@Param("group__id") String group__id, @Param("role__id") String role__id);

    // 将一个角色到角色组的关联移除
    int removeTieToRoleGroup(@Param("group__id") String group__id, @Param("role__id") String role__id);

    /***
     * new Add 用户权限管理
     */
    // 根据角色名置换角色Id
    String switchRoleNameToId(String role__name);

    // 查询所有的角色
    List<Map<String, Object>> queryAllRolesApe();

}
